//
//  main.m
//  02-ClassAddObject
//
//  Created by dllo on 16/7/5.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    
    
    //1.快捷键
    //command + 0 开/收起左边栏
    //command + option + 0 开/收右边栏
    //command + shift + Y 开/收下边栏
    //command + R运行
    //command + B编译
    //command + z撤销
    //command + shift +Z反撤销
    //command + C复制
    //command + V
    
    //2.移动光标
    //command + ←移动到当前航的最左边
    //command + →移动到当前航的最右边
    //command + ↑移动到所有行的第一行
    //command + ↓移动到所有行的最后一行起始位置
    
    
    //3。选中文字
    //shift + ←选中向左一个字
    //shift + →选中向右一个字
    //shift + ↑从当前光标位置开始，选中向上一行，对应位置
    //shift + ↓从当前光标位置开始，选中向下一行，对应位置
    
    //command + shift + ←选中从光标开始，左边所有的文字
    //command + shift + →选中从光标开始，右边所有的文字
    //command + shift + ↓选中从光标开始，下边所有的文字
    
    
    //1.类：一个具有相同特征和行为的食物抽象结合
    //对象：类的实例,也称作类的实现。
    //面向对象的思想，万物都是对象
    //面向对象语言是面向对象思想的具体体现
    //OOP面向对象编程
    //OOD面向对象设计
    //面向对象三大特征 封装 集成 多态 提高代码的复用
    
    
    //2.Objective-C(OC) 错误实例：Object-C object-c
    //与C语言的区别
    //OC属于C语言的扩展
    //OC有了类的概念
    //OC种生命属性和方法在.h中
    //OC中具体实现在.m中
    //.mm C++文件，在这个文件中可以编写C++代码
    //
    //OC中的根类NSObject
    //
    
    //3.创建OC的实例
    //1>消息语法 [objc doSomething]
    //向objc对象去发送一个doSonething的方法，让他去调用
    //类方法的调用（由类名去调用+方法）
    //开辟内存空间
    NSObject *objc = [NSObject alloc];
    //实例方法的调用
    //-init
    NSObject *newObjc = [objc init];
    
    
    //创建一个Person对象
    Person *per = [[Person alloc] init];
    //公开的成员可以直接通过->赋值->取值
    
    per->_age = 10;
    NSLog(@"%ld",per->_age);
    //受保护的成员不能通过->去访问
//    per->_name =
    
    //id与instancetype
    //instancetype 在做为参数返回值的时候与id是一样的，系统编译器会把id类型转成instancetype(即当前对象类型)
    //id可以作为变量类型去使用，但instancetype不可以
    id object = [[NSObject alloc] init];
    
    
    
    
    
    return 0;
}
